Geolocation may refer to the practice of assessing the real-world geographic location of an object, or to the actual assessed location. In computing, geolocation software is used to deduce the physical location of another party, typically a mobile phone or Internet-connected computer terminal. For example, on the Internet, one geolocation approach is to identify the subject party's Internet protocol (IP) address and then determine that party's physical location with geographic information (country, city, postal code, organization, etc.) attached to the IP address. Such an approach is utilized by what may be referred to generally as geo IP address lookup systems.
Traditional geo IP address lookup systems use a database lookup to determine the approximate location of an IP address. These systems are only as accurate as the database itself, which is generally built from self-reported or third party data. This may lead to the following problems: First, the third party data is often purposely inaccurate or incomplete. Second, due to privacy or security concerns, the IP address location reported may be inaccurate. Third, the IP address location reported might belong to the central or home office of an organization instead of the actual location of the IP address. Fourth, the location of an IP address may change at any time, making the corresponding database data for that IP address inaccurate.
For those skilled in IP technology, typically there are two methods that are used to estimate the location of an IP address. The first method is to determine IP address locations with traceroutes. A traceroute displays the routes and measures transit delays of packets across an IP network. Often a traceroute to a given IP address is performed, and then a reverse Domain Name System (reverse DNS) for the hops of the traceroute to that IP address can determine the path the data takes, and ultimately the true location of the IP address. A challenge with this method is that the reverse DNS can be blank or hidden.
The second method is to determine IP address locations by ping, which tests the reachability of a host on an IP network and measures the round-trip time for messages sent from the originating host to a destination computer. It can be very challenging to produce accurate results using this method. If a web server is situated at a known location, and an IP address from the web server is pinged, the value, or score, of the ping can provide an estimate for the IP address location. As the ping score increases, the accuracy of the location greatly diminishes. For example, with a 1 millisecond ping, the IP address is likely in the same data center. At 10 milliseconds, it is probably in the same city. At 100 milliseconds, it could potentially be across the country. What makes this even more challenging is that a high ping score does not necessarily indicate that the IP address is physically far away. Poor connectivity between the test server and the target server may result in wildly inaccurate results.
Another significant challenge with IP address location discovery is obfuscation. Often companies or Internet providers will use obfuscation techniques to hide locations of IP addresses, or report completely different locations and/or trace information. These obfuscation techniques are deliberately designed to mislead someone skilled in IP technology. Obfuscation techniques may also completely alter the apparent location of a given IP address at any time. This makes it very difficult for an IP technologist to accurately determine the true location of an IP address protected by obfuscation.
What is needed is an accurate, near real-time global server/node system that performs automated IP address location discovery and cross checks, acting like a global army of IP technologists working twenty-four-seven. This system is particularly helpful when IP obfuscation techniques are used, which would otherwise report errant data to someone skilled in the art of IP technology.